package it.polimi.reTravelDream.dto;

import java.util.Date;
import java.util.List;

import org.hibernate.validator.constraints.NotEmpty;

public class TravelPackageDTO {
		
		private int id;
		
		@NotEmpty
		private String packageName;
		@NotEmpty
		private String description;
		@NotEmpty
		private String city;
		@NotEmpty
		private String keyWord1;
	
		private String keyWord2;
		
		private String keyWord3;
		
		private Date arrivo;
		private int numberOfNights;
		
		private List<FlightDTO> packageFlights;
		private List<HotelDTO> packageHotelDTOs;
		private List<ExcursionDTO> packageExcursions;
		
		private int numberOfPerson;
		
		
		public void clearFlightList(){
			this.packageFlights.clear();
		}
		
		public void clearHotelList(){
			this.packageHotelDTOs.clear();
		}
		
		public String getPackageName() {
			return packageName;
		}
		public void setPackageName(String packageName) {
			this.packageName = packageName;
		}
		public String getDescription() {
			return description;
		}
		public void setDescription(String description) {
			this.description = description;
		}
		public int getNumberOfPerson() {
			return numberOfPerson;
		}
		public void setNumberOfPerson(int numberOfPerson) {
			this.numberOfPerson = numberOfPerson;
		}
		public int getId() {
			return id;
		}
		public void setId(int long1) {
			this.id = long1;
		}
		public String getKeyWord1() {
			return keyWord1;
		}
		public void setKeyWord1(String keyWord1) {
			this.keyWord1 = keyWord1;
		}
		public String getKeyWord2() {
			return keyWord2;
		}
		public void setKeyWord2(String keyWord2) {
			this.keyWord2 = keyWord2;
		}
		public String getKeyWord3() {
			return keyWord3;
		}
		public void setKeyWord3(String keyWord3) {
			this.keyWord3 = keyWord3;
		}
		
		
	public String getCity() {
			return city;
		}

		public void setCity(String city) {
			this.city = city;
		}

	public List<FlightDTO> getPackageFlights() {
			return packageFlights;
		}
		public void setPackageFlights(List<FlightDTO> packageFlights) {
		//	System.out.println("aggiorno lista voli");
			//System.out.println(this.packageFlights);
			this.packageFlights = packageFlights;
			//System.out.println(this.packageFlights);
		}
		public List<HotelDTO> getPackageHotelDTOs() {
			return packageHotelDTOs;
		}
		public void setPackageHotelDTOs(List<HotelDTO> packageHotelDTOs) {
			this.packageHotelDTOs = packageHotelDTOs;
		}
		public List<ExcursionDTO> getPackageExcursions() {
			return packageExcursions;
		}
		public void setPackageExcursions(List<ExcursionDTO> packageExcursions) {
			this.packageExcursions = packageExcursions;
		}
		
	@Override
	public String toString(){
		return "id: "+this.id+'\n'+" packageName: "+'\n'+this.packageName+'\n'+" description: "+this.description+'\n'+" key1: "
				+"city: "+this.city
				+this.keyWord1+" key2:"+ this.keyWord2+" key3:"+this.keyWord3+'\n'+
				"numeber of person: "+this.numberOfPerson+'\n'+
				"voli: "+this.packageFlights.toString()+
				"hotel: "+this.packageHotelDTOs.toString()+
				"escursioni: "+ this.packageExcursions.toString();
	}

	public Date getArrivo() {
		return arrivo;
	}

	public void setArrivo(Date arrivo) {
		this.arrivo = arrivo;
	}

	public int getNumberOfNights() {
		return numberOfNights;
	}

	public void setNumberOfNights(int numberOfNights) {
		this.numberOfNights = numberOfNights;
	}


		
}
